1. Technical Field
This invention generally relates to data processing, and more specifically relates to the mirroring of storage in a computer system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices that may be found in many different settings. Many computer systems include critical data that must not be lost if a failure in the computer system occurs. In the prior art, the concept of “mirroring” is known. Two identical disk drives are typically installed on a computer system. One is designated primary storage, while the other is designated mirrored storage. For each write to the primary storage disk drive, a corresponding write of the same data to the same physical location is made to the mirrored storage disk drive. Thus, the mirrored storage becomes a “mirror image” of the primary storage. Should the primary storage fail, the mirrored storage could then be used, because the mirrored storage contains the same data in the same physical locations as the primary storage.
A prior art method 200 for local (or physical) mirroring is shown in FIG. 2. Identical disk drives are provided (step 210). Data is written to primary storage (step 220). The data written to primary storage is then copied to the same physical location on the mirrored storage (step 230). In this manner, the mirrored storage is an exact copy, down to the sector level, of the primary storage. Such a system 300 is shown in block diagram form in FIG. 3. The computer system 300 includes primary storage 310 and mirrored storage 320 that are identical disk drives. When data is written to primary storage 310, the data is then copied to the same physical location on mirrored storage 320.
Two problems exist with the local mirroring as shown in FIGS. 2 and 3. First, local mirroring requires identical disk drives. Thus, if the primary storage disk drive is upgraded, the mirrored storage disk drive must be likewise upgraded. Second, local mirroring requires that these identical drives be on the same computer system (e.g., 300 in FIG. 3). While it may be possible to achieve some degree of physical separation between primary storage and mirrored storage within the same computer system, the local mirroring still requires that the primary and mirrored storage be on the same computer system. A catastrophic event at a site (e.g., earthquake, fire, etc.) could easily result in destruction of both the primary storage and the mirrored storage. For this reason, local mirroring is not a suitable protection against catastrophic site failure. A concept known in the art as “logical mirroring” allows mirroring data across geographically remote locations between non-identical disk drives.
Logical mirroring, like physical mirroring, requires that operations on the mirrored storage be performed in a way that assures that data dependencies between operations are satisfied. In all physical mirroring systems, data dependencies are satisfied by enforcing the same order of operations on the mirrored system as on the primary system. Enforcing the same order in a logical mirrored system, however, results in performance penalties that are not acceptable in most applications. Without a way for mirrored storage to achieve parallelism in operations that do not conflict with each other, while serializing the order of operations that do conflict, the computer industry will continue to suffer from inefficient ways of performing logical mirroring.